package com.room.search.service.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Objects;
import javax.validation.constraints.*;

/**
 * A DTO for the {@link com.room.search.domain.RoomBasicProperty} entity.
 */
@ApiModel(description = "房屋基本属性")
public class RoomBasicPropertyDTO implements Serializable {

    private Long id;

    /**
     * 房屋户型
     */
    @Size(max = 32)
    @ApiModelProperty(value = "房屋户型")
    private String houseType;

    /**
     * 建筑面积
     */
    @Size(max = 32)
    @ApiModelProperty(value = "建筑面积")
    private String buildingSize;

    /**
     * 建筑结构
     */
    @Size(max = 16)
    @ApiModelProperty(value = "建筑结构")
    private String structure;

    /**
     * 所在楼层
     */
    @Size(max = 32)
    @ApiModelProperty(value = "所在楼层")
    private String roomFloor;

    /**
     * 建筑类型
     */
    @Size(max = 32)
    @ApiModelProperty(value = "建筑类型")
    private String buildingType;

    /**
     * 梯户比例
     */
    @Size(max = 16)
    @ApiModelProperty(value = "梯户比例")
    private String ladderHouseHold;

    /**
     * 户型结构
     */
    @Size(max = 16)
    @ApiModelProperty(value = "户型结构")
    private String floorStructure;

    /**
     * 房屋朝向
     */
    @Size(max = 8)
    @ApiModelProperty(value = "房屋朝向")
    private String roomTowards;

    /**
     * 装修情况
     */
    @Size(max = 8)
    @ApiModelProperty(value = "装修情况")
    private String roomFitment;

    /**
     * 梯户比例
     */
    @Size(max = 16)
    @ApiModelProperty(value = "梯户比例")
    private String ladderHouseholds;

    /**
     * 配备电梯
     */
    @ApiModelProperty(value = "配备电梯")
    private Boolean lift;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getHouseType() {
        return houseType;
    }

    public void setHouseType(String houseType) {
        this.houseType = houseType;
    }

    public String getBuildingSize() {
        return buildingSize;
    }

    public void setBuildingSize(String buildingSize) {
        this.buildingSize = buildingSize;
    }

    public String getStructure() {
        return structure;
    }

    public void setStructure(String structure) {
        this.structure = structure;
    }

    public String getRoomFloor() {
        return roomFloor;
    }

    public void setRoomFloor(String roomFloor) {
        this.roomFloor = roomFloor;
    }

    public String getBuildingType() {
        return buildingType;
    }

    public void setBuildingType(String buildingType) {
        this.buildingType = buildingType;
    }

    public String getLadderHouseHold() {
        return ladderHouseHold;
    }

    public void setLadderHouseHold(String ladderHouseHold) {
        this.ladderHouseHold = ladderHouseHold;
    }

    public String getFloorStructure() {
        return floorStructure;
    }

    public void setFloorStructure(String floorStructure) {
        this.floorStructure = floorStructure;
    }

    public String getRoomTowards() {
        return roomTowards;
    }

    public void setRoomTowards(String roomTowards) {
        this.roomTowards = roomTowards;
    }

    public String getRoomFitment() {
        return roomFitment;
    }

    public void setRoomFitment(String roomFitment) {
        this.roomFitment = roomFitment;
    }

    public String getLadderHouseholds() {
        return ladderHouseholds;
    }

    public void setLadderHouseholds(String ladderHouseholds) {
        this.ladderHouseholds = ladderHouseholds;
    }

    public Boolean getLift() {
        return lift;
    }

    public void setLift(String lift) {
        this.lift = lift.equals("1");
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (!(o instanceof RoomBasicPropertyDTO)) {
            return false;
        }

        RoomBasicPropertyDTO roomBasicPropertyDTO = (RoomBasicPropertyDTO) o;
        if (this.id == null) {
            return false;
        }
        return Objects.equals(this.id, roomBasicPropertyDTO.id);
    }

    @Override
    public int hashCode() {
        return Objects.hash(this.id);
    }

    // prettier-ignore
    @Override
    public String toString() {
        return "RoomBasicPropertyDTO{" +
            "id=" + getId() +
            ", houseType='" + getHouseType() + "'" +
            ", buildingSize='" + getBuildingSize() + "'" +
            ", structure='" + getStructure() + "'" +
            ", roomFloor='" + getRoomFloor() + "'" +
            ", buildingType='" + getBuildingType() + "'" +
            ", ladderHouseHold='" + getLadderHouseHold() + "'" +
            ", floorStructure='" + getFloorStructure() + "'" +
            ", roomTowards='" + getRoomTowards() + "'" +
            ", roomFitment='" + getRoomFitment() + "'" +
            ", ladderHouseholds='" + getLadderHouseholds() + "'" +
            ", lift='" + getLift() + "'" +
            "}";
    }
}
